package org.tea.inventory.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品属性对象 product
 * 
 * @author dongxb
 * @date 2025-04-07
 */
@ApiModel(value = "商品信息表")
@Data
@NoArgsConstructor
public class ProductVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty(value = "主键")
    private Long id;

    /** 商品编号 */
    @ApiModelProperty(value = "商品编号")
    private String productCode;

    /** 商品名称 */
    @ApiModelProperty(value = "商品名称")
    private String productName;

    /** 商品简称 */
    @ApiModelProperty(value = "商品简称")
    private String productShortForm;

    /** 商品类别编号 */
    @ApiModelProperty(value = "商品类别编号")
    private String categoryId;

    /** 商品品牌id */
    @ApiModelProperty(value = "商品品牌id")
    private String brandId;

    /** 商品状态：0启用，1停用 */
    @ApiModelProperty(value = "商品状态：0启用，1停用")
    private Integer status;

    /** 商品图片url */
    @ApiModelProperty(value = "商品图片url")
    private String imgUrl;

    /** 单价 */
    @ApiModelProperty(value = "单价")
    private BigDecimal price;

    /** 销售价 */
    @ApiModelProperty(value = "销售价")
    private BigDecimal salePrice;

    /** 成本 */
    @ApiModelProperty(value = "成本")
    private BigDecimal costPrice;

    /** 重量 */
    @ApiModelProperty(value = "重量")
    private Long weight;

    /** 商品品牌id */
    @ApiModelProperty(value = "商品品牌id")
    private String teaTypeId;

    /** 商品级别 */
    @ApiModelProperty(value = "商品级别")
    private String teaLevel;

    /** 商品系列 */
    @ApiModelProperty(value = "商品系列")
    private String teaSeries;

    /** 打包方式 */
    @ApiModelProperty(value = "打包方式")
    private String teaPackageFormat;

    /** 产地 */
    @ApiModelProperty(value = "产地")
    private String teaOrigin;

    /** 采摘季节 */
    @ApiModelProperty(value = "采摘季节")
    private String teaGetSeason;

    /** 保质期 */
    //@JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "保质期")
    private Date teaSellbyDate;

    /** 陈化年份 */
    @ApiModelProperty(value = "陈化年份")
    private String teaAgingYear;

    /** 溯源信息文件 */
    @ApiModelProperty(value = "溯源信息文件")
    private String teaFileUrls;

    /** 存储要求 */
    @ApiModelProperty(value = "存储要求")
    private String teaStorageRequire;

    /** 创建时间 */
    //@JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    /** 创建者 */
    @ApiModelProperty(value = "创建者")
    private String createUserId;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@ApiModelProperty(value = "更新时间")
    private Date updateDate;

    /** 更新者 */
    @ApiModelProperty(value = "更新者")
    private String updateUserId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setProductCode(String productCode) 
    {
        this.productCode = productCode;
    }

    public String getProductCode() 
    {
        return productCode;
    }

    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setProductShortForm(String productShortForm) 
    {
        this.productShortForm = productShortForm;
    }

    public String getProductShortForm() 
    {
        return productShortForm;
    }

    public void setCategoryId(String categoryId) 
    {
        this.categoryId = categoryId;
    }

    public String getCategoryId() 
    {
        return categoryId;
    }

    public void setBrandId(String brandId) 
    {
        this.brandId = brandId;
    }

    public String getBrandId() 
    {
        return brandId;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setImgUrl(String imgUrl) 
    {
        this.imgUrl = imgUrl;
    }

    public String getImgUrl() 
    {
        return imgUrl;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setSalePrice(BigDecimal salePrice) 
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice() 
    {
        return salePrice;
    }

    public void setCostPrice(BigDecimal costPrice) 
    {
        this.costPrice = costPrice;
    }

    public BigDecimal getCostPrice() 
    {
        return costPrice;
    }

    public void setWeight(Long weight) 
    {
        this.weight = weight;
    }

    public Long getWeight() 
    {
        return weight;
    }

    public void setTeaTypeId(String teaTypeId) 
    {
        this.teaTypeId = teaTypeId;
    }

    public String getTeaTypeId() 
    {
        return teaTypeId;
    }

    public void setTeaLevel(String teaLevel) 
    {
        this.teaLevel = teaLevel;
    }

    public String getTeaLevel() 
    {
        return teaLevel;
    }

    public void setTeaSeries(String teaSeries) 
    {
        this.teaSeries = teaSeries;
    }

    public String getTeaSeries() 
    {
        return teaSeries;
    }

    public void setTeaPackageFormat(String teaPackageFormat) 
    {
        this.teaPackageFormat = teaPackageFormat;
    }

    public String getTeaPackageFormat() 
    {
        return teaPackageFormat;
    }

    public void setTeaOrigin(String teaOrigin) 
    {
        this.teaOrigin = teaOrigin;
    }

    public String getTeaOrigin() 
    {
        return teaOrigin;
    }

    public void setTeaGetSeason(String teaGetSeason) 
    {
        this.teaGetSeason = teaGetSeason;
    }

    public String getTeaGetSeason() 
    {
        return teaGetSeason;
    }

    public void setTeaSellbyDate(Date teaSellbyDate) 
    {
        this.teaSellbyDate = teaSellbyDate;
    }

    public Date getTeaSellbyDate() 
    {
        return teaSellbyDate;
    }

    public void setTeaAgingYear(String teaAgingYear) 
    {
        this.teaAgingYear = teaAgingYear;
    }

    public String getTeaAgingYear() 
    {
        return teaAgingYear;
    }

    public void setTeaFileUrls(String teaFileUrls) 
    {
        this.teaFileUrls = teaFileUrls;
    }

    public String getTeaFileUrls() 
    {
        return teaFileUrls;
    }

    public void setTeaStorageRequire(String teaStorageRequire) 
    {
        this.teaStorageRequire = teaStorageRequire;
    }

    public String getTeaStorageRequire() 
    {
        return teaStorageRequire;
    }

    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }

    public void setCreateUserId(String createUserId) 
    {
        this.createUserId = createUserId;
    }

    public String getCreateUserId() 
    {
        return createUserId;
    }

    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }

    public void setUpdateUserId(String updateUserId) 
    {
        this.updateUserId = updateUserId;
    }

    public String getUpdateUserId() 
    {
        return updateUserId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productCode", getProductCode())
            .append("productName", getProductName())
            .append("productShortForm", getProductShortForm())
            .append("categoryId", getCategoryId())
            .append("brandId", getBrandId())
            .append("status", getStatus())
            .append("imgUrl", getImgUrl())
            .append("price", getPrice())
            .append("salePrice", getSalePrice())
            .append("costPrice", getCostPrice())
            .append("weight", getWeight())
            .append("teaTypeId", getTeaTypeId())
            .append("teaLevel", getTeaLevel())
            .append("teaSeries", getTeaSeries())
            .append("teaPackageFormat", getTeaPackageFormat())
            .append("teaOrigin", getTeaOrigin())
            .append("teaGetSeason", getTeaGetSeason())
            .append("teaSellbyDate", getTeaSellbyDate())
            .append("teaAgingYear", getTeaAgingYear())
            .append("teaFileUrls", getTeaFileUrls())
            .append("teaStorageRequire", getTeaStorageRequire())
            .append("createDate", getCreateDate())
            .append("createUserId", getCreateUserId())
            .append("updateDate", getUpdateDate())
            .append("updateUserId", getUpdateUserId())
            .toString();
    }
}
